package com.niiwoo.activity.stage.service.redeemCode;

import com.niiwoo.activity.stage.dto.request.redeemCode.ExchangeGoodsReqDTO;
import com.niiwoo.activity.stage.dto.request.redeemCode.RedeemCodeSaveReqDTO;
import com.niiwoo.activity.stage.dto.request.redeemCode.RedeemCodeListReqDTO;
import com.niiwoo.activity.stage.dto.request.redeemCode.RedeemCodeUseDetailReqDTO;
import com.niiwoo.activity.stage.dto.response.redeemCode.ExchangeGoodsRespDTO;
import com.niiwoo.activity.stage.dto.response.redeemCode.RedeemCodeDetailRespDTO;
import com.niiwoo.activity.stage.dto.response.redeemCode.RedeemCodeListRespDTO;
import com.niiwoo.activity.stage.dto.response.redeemCode.RedeemCodeUseDetailRespDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

import java.util.List;
import java.util.Map;

public interface RedeemCodeDubboService {

    /**
     * 兑换码分页查询
     * @param requestDTO
     * @return
     */
    default PageResponseDTO<RedeemCodeListRespDTO> getRedeemCodePage(RedeemCodeListReqDTO requestDTO){
        throw new UnsupportedOperationException("unimplemented");
    };

    /**
     * 兑换码明细查看
     * @param id
     * @return
     */
    default RedeemCodeDetailRespDTO getRedeemCodeDetail(Long id){
        throw new UnsupportedOperationException("unimplemented");
    };

    /**
     * 兑换明细分页查询
     * @param requestDTO
     * @return
     */
    default PageResponseDTO<RedeemCodeUseDetailRespDTO> getCodeExchangeRecordPage(RedeemCodeUseDetailReqDTO requestDTO){
        throw new UnsupportedOperationException("unimplemented");
    };

    /**
     * 兑换码导出查询
     * @param redeemCodeId
     * @return
     */
    default List<Map<String,Object>> getExportCodes(Long redeemCodeId){
        throw new UnsupportedOperationException("unimplemented");
    };

    /**
     * 保存兑奖码信息
     *
     * @param reqDTO
     * @return
     */
    default void saveRedeemCode(RedeemCodeSaveReqDTO reqDTO){
        throw new UnsupportedOperationException("unimplemented");
    };

    /**
     * 修改兑奖码信息
     * @param updateDTO
     */
    default void updateRedeemCode(RedeemCodeSaveReqDTO updateDTO){
        throw new UnsupportedOperationException("unimplemented");
    };

    /**
     * 兑换奖品
     * @param reqDTO
     * @return
     */
    default ExchangeGoodsRespDTO exchangeGoods(ExchangeGoodsReqDTO reqDTO){
        throw new UnsupportedOperationException("unimplemented");
    }
}
